# RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s | FileCheck -strict-whitespace %s

# CHECK: s_load_dword s5, s[2:3], s0             ; encoding: [0x41,0x01,0x00,0xc0,0x00,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s101, s[2:3], s0           ; encoding: [0x41,0x19,0x00,0xc0,0x00,0x00,0x00,0x00]
0x41,0x19,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword flat_scratch_lo, s[2:3], s0 ; encoding: [0x81,0x19,0x00,0xc0,0x00,0x00,0x00,0x00]
0x81,0x19,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword flat_scratch_hi, s[2:3], s0 ; encoding: [0xc1,0x19,0x00,0xc0,0x00,0x00,0x00,0x00]
0xc1,0x19,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword vcc_lo, s[2:3], s0         ; encoding: [0x81,0x1a,0x00,0xc0,0x00,0x00,0x00,0x00]
0x81,0x1a,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword vcc_hi, s[2:3], s0         ; encoding: [0xc1,0x1a,0x00,0xc0,0x00,0x00,0x00,0x00]
0xc1,0x1a,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[4:5], s0             ; encoding: [0x42,0x01,0x00,0xc0,0x00,0x00,0x00,0x00]
0x42,0x01,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[100:101], s0         ; encoding: [0x72,0x01,0x00,0xc0,0x00,0x00,0x00,0x00]
0x72,0x01,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, flat_scratch, s0       ; encoding: [0x73,0x01,0x00,0xc0,0x00,0x00,0x00,0x00]
0x73,0x01,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, vcc, s0                ; encoding: [0x75,0x01,0x00,0xc0,0x00,0x00,0x00,0x00]
0x75,0x01,0x00,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], s101           ; encoding: [0x41,0x01,0x00,0xc0,0x65,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x65,0x00,0x00,0x00

# The SGRP variants can alternatively be encoded with imm=0, soffset_en=1
# and the offset register encoded in the soffset field with the offset
# field being disregarded.
# CHECK: s_load_dword s5, s[2:3], s64            ; encoding: [0x41,0x41,0x00,0xc0,0x00,0x00,0x00,0x80]
0x41,0x41,0x00,0xc0,0x65,0x00,0x00,0x80

# CHECK: s_load_dword s5, s[2:3], flat_scratch_lo ; encoding: [0x41,0x01,0x00,0xc0,0x66,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], flat_scratch_hi ; encoding: [0x41,0x01,0x00,0xc0,0x67,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], vcc_lo         ; encoding: [0x41,0x01,0x00,0xc0,0x6a,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], vcc_hi         ; encoding: [0x41,0x01,0x00,0xc0,0x6b,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], m0             ; encoding: [0x41,0x01,0x00,0xc0,0x7c,0x00,0x00,0x00]
0x41,0x01,0x00,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], 0x0            ; encoding: [0x41,0x01,0x02,0xc0,0x00,0x00,0x00,0x00]
0x41,0x01,0x02,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], s0 offset:0x12345 ; encoding: [0x41,0x41,0x02,0xc0,0x45,0x23,0x01,0x00]
0x41,0x41,0x02,0xc0,0x45,0x23,0x01,0x00

# SP3 prefers to decode instructions with imm=1 and soffset_en=1 to the
# form with the 'offset:' modifier, even if the offset is 0.
# CHECK: s_load_dword s5, s[2:3], s0 offset:0x0  ; encoding: [0x41,0x41,0x02,0xc0,0x00,0x00,0x00,0x00]
0x41,0x41,0x02,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dword s5, s[2:3], s0 glc         ; encoding: [0x41,0x01,0x01,0xc0,0x00,0x00,0x00,0x00]
0x41,0x01,0x01,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], s0     ; encoding: [0x81,0x02,0x04,0xc0,0x00,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[12:13], s[2:3], s0     ; encoding: [0x01,0x03,0x04,0xc0,0x00,0x00,0x00,0x00]
0x01,0x03,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[100:101], s[2:3], s0   ; encoding: [0x01,0x19,0x04,0xc0,0x00,0x00,0x00,0x00]
0x01,0x19,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 flat_scratch, s[2:3], s0 ; encoding: [0x81,0x19,0x04,0xc0,0x00,0x00,0x00,0x00]
0x81,0x19,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 vcc, s[2:3], s0          ; encoding: [0x81,0x1a,0x04,0xc0,0x00,0x00,0x00,0x00]
0x81,0x1a,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[4:5], s0     ; encoding: [0x82,0x02,0x04,0xc0,0x00,0x00,0x00,0x00]
0x82,0x02,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[100:101], s0 ; encoding: [0xb2,0x02,0x04,0xc0,0x00,0x00,0x00,0x00]
0xb2,0x02,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], flat_scratch, s0 ; encoding: [0xb3,0x02,0x04,0xc0,0x00,0x00,0x00,0x00]
0xb3,0x02,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], vcc, s0        ; encoding: [0xb5,0x02,0x04,0xc0,0x00,0x00,0x00,0x00]
0xb5,0x02,0x04,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], s101   ; encoding: [0x81,0x02,0x04,0xc0,0x65,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], flat_scratch_lo ; encoding: [0x81,0x02,0x04,0xc0,0x66,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], flat_scratch_hi ; encoding: [0x81,0x02,0x04,0xc0,0x67,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], vcc_lo ; encoding: [0x81,0x02,0x04,0xc0,0x6a,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], vcc_hi ; encoding: [0x81,0x02,0x04,0xc0,0x6b,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], m0     ; encoding: [0x81,0x02,0x04,0xc0,0x7c,0x00,0x00,0x00]
0x81,0x02,0x04,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], 0x0    ; encoding: [0x81,0x02,0x06,0xc0,0x00,0x00,0x00,0x00]
0x81,0x02,0x06,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], s0 offset:0x12345 ; encoding: [0x81,0x42,0x06,0xc0,0x45,0x23,0x01,0x00]
0x81,0x42,0x06,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_load_dwordx2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc0,0x00,0x00,0x00,0x00]
0x81,0x02,0x05,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], s0     ; encoding: [0x01,0x05,0x08,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[24:27], s[2:3], s0     ; encoding: [0x01,0x06,0x08,0xc0,0x00,0x00,0x00,0x00]
0x01,0x06,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[96:99], s[2:3], s0     ; encoding: [0x01,0x18,0x08,0xc0,0x00,0x00,0x00,0x00]
0x01,0x18,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[4:5], s0     ; encoding: [0x02,0x05,0x08,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[100:101], s0 ; encoding: [0x32,0x05,0x08,0xc0,0x00,0x00,0x00,0x00]
0x32,0x05,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], flat_scratch, s0 ; encoding: [0x33,0x05,0x08,0xc0,0x00,0x00,0x00,0x00]
0x33,0x05,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], vcc, s0        ; encoding: [0x35,0x05,0x08,0xc0,0x00,0x00,0x00,0x00]
0x35,0x05,0x08,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], s101   ; encoding: [0x01,0x05,0x08,0xc0,0x65,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], flat_scratch_lo ; encoding: [0x01,0x05,0x08,0xc0,0x66,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], flat_scratch_hi ; encoding: [0x01,0x05,0x08,0xc0,0x67,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], vcc_lo ; encoding: [0x01,0x05,0x08,0xc0,0x6a,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], vcc_hi ; encoding: [0x01,0x05,0x08,0xc0,0x6b,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], m0     ; encoding: [0x01,0x05,0x08,0xc0,0x7c,0x00,0x00,0x00]
0x01,0x05,0x08,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], 0x0    ; encoding: [0x01,0x05,0x0a,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x0a,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], s0 offset:0x12345 ; encoding: [0x01,0x45,0x0a,0xc0,0x45,0x23,0x01,0x00]
0x01,0x45,0x0a,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_load_dwordx4 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x09,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x09,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], s0     ; encoding: [0x01,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[24:31], s[2:3], s0     ; encoding: [0x01,0x06,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x01,0x06,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[92:99], s[2:3], s0     ; encoding: [0x01,0x17,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x01,0x17,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[4:5], s0     ; encoding: [0x02,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[100:101], s0 ; encoding: [0x32,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x32,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], flat_scratch, s0 ; encoding: [0x33,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x33,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], vcc, s0        ; encoding: [0x35,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00]
0x35,0x05,0x0c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], s101   ; encoding: [0x01,0x05,0x0c,0xc0,0x65,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], flat_scratch_lo ; encoding: [0x01,0x05,0x0c,0xc0,0x66,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], flat_scratch_hi ; encoding: [0x01,0x05,0x0c,0xc0,0x67,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], vcc_lo ; encoding: [0x01,0x05,0x0c,0xc0,0x6a,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], vcc_hi ; encoding: [0x01,0x05,0x0c,0xc0,0x6b,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], m0     ; encoding: [0x01,0x05,0x0c,0xc0,0x7c,0x00,0x00,0x00]
0x01,0x05,0x0c,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], 0x0    ; encoding: [0x01,0x05,0x0e,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x0e,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], s0 offset:0x12345 ; encoding: [0x01,0x45,0x0e,0xc0,0x45,0x23,0x01,0x00]
0x01,0x45,0x0e,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_load_dwordx8 s[20:27], s[2:3], s0 glc ; encoding: [0x01,0x05,0x0d,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x0d,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], s0    ; encoding: [0x01,0x05,0x10,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[24:39], s[2:3], s0    ; encoding: [0x01,0x06,0x10,0xc0,0x00,0x00,0x00,0x00]
0x01,0x06,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[84:99], s[2:3], s0    ; encoding: [0x01,0x15,0x10,0xc0,0x00,0x00,0x00,0x00]
0x01,0x15,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[4:5], s0    ; encoding: [0x02,0x05,0x10,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[100:101], s0 ; encoding: [0x32,0x05,0x10,0xc0,0x00,0x00,0x00,0x00]
0x32,0x05,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], flat_scratch, s0 ; encoding: [0x33,0x05,0x10,0xc0,0x00,0x00,0x00,0x00]
0x33,0x05,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], vcc, s0       ; encoding: [0x35,0x05,0x10,0xc0,0x00,0x00,0x00,0x00]
0x35,0x05,0x10,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], s101  ; encoding: [0x01,0x05,0x10,0xc0,0x65,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], flat_scratch_lo ; encoding: [0x01,0x05,0x10,0xc0,0x66,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], flat_scratch_hi ; encoding: [0x01,0x05,0x10,0xc0,0x67,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], vcc_lo ; encoding: [0x01,0x05,0x10,0xc0,0x6a,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], vcc_hi ; encoding: [0x01,0x05,0x10,0xc0,0x6b,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], m0    ; encoding: [0x01,0x05,0x10,0xc0,0x7c,0x00,0x00,0x00]
0x01,0x05,0x10,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], 0x0   ; encoding: [0x01,0x05,0x12,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x12,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], s0 offset:0x12345 ; encoding: [0x01,0x45,0x12,0xc0,0x45,0x23,0x01,0x00]
0x01,0x45,0x12,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_load_dwordx16 s[20:35], s[2:3], s0 glc ; encoding: [0x01,0x05,0x11,0xc0,0x00,0x00,0x00,0x00]
0x01,0x05,0x11,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], s0      ; encoding: [0x42,0x01,0x20,0xc0,0x00,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s101, s[4:7], s0    ; encoding: [0x42,0x19,0x20,0xc0,0x00,0x00,0x00,0x00]
0x42,0x19,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword flat_scratch_lo, s[4:7], s0 ; encoding: [0x82,0x19,0x20,0xc0,0x00,0x00,0x00,0x00]
0x82,0x19,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword flat_scratch_hi, s[4:7], s0 ; encoding: [0xc2,0x19,0x20,0xc0,0x00,0x00,0x00,0x00]
0xc2,0x19,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword vcc_lo, s[4:7], s0  ; encoding: [0x82,0x1a,0x20,0xc0,0x00,0x00,0x00,0x00]
0x82,0x1a,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword vcc_hi, s[4:7], s0  ; encoding: [0xc2,0x1a,0x20,0xc0,0x00,0x00,0x00,0x00]
0xc2,0x1a,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[8:11], s0     ; encoding: [0x44,0x01,0x20,0xc0,0x00,0x00,0x00,0x00]
0x44,0x01,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[96:99], s0    ; encoding: [0x70,0x01,0x20,0xc0,0x00,0x00,0x00,0x00]
0x70,0x01,0x20,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], s101    ; encoding: [0x42,0x01,0x20,0xc0,0x65,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], flat_scratch_lo ; encoding: [0x42,0x01,0x20,0xc0,0x66,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], flat_scratch_hi ; encoding: [0x42,0x01,0x20,0xc0,0x67,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], vcc_lo  ; encoding: [0x42,0x01,0x20,0xc0,0x6a,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], vcc_hi  ; encoding: [0x42,0x01,0x20,0xc0,0x6b,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], m0      ; encoding: [0x42,0x01,0x20,0xc0,0x7c,0x00,0x00,0x00]
0x42,0x01,0x20,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], 0x0     ; encoding: [0x42,0x01,0x22,0xc0,0x00,0x00,0x00,0x00]
0x42,0x01,0x22,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], s0 offset:0x12345 ; encoding: [0x42,0x41,0x22,0xc0,0x45,0x23,0x01,0x00]
0x42,0x41,0x22,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_buffer_load_dword s5, s[4:7], s0 glc  ; encoding: [0x42,0x01,0x21,0xc0,0x00,0x00,0x00,0x00]
0x42,0x01,0x21,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x24,0xc0,0x00,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x24,0xc0,0x00,0x00,0x00,0x00]
0x02,0x03,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x24,0xc0,0x00,0x00,0x00,0x00]
0x02,0x19,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 flat_scratch, s[4:7], s0 ; encoding: [0x82,0x19,0x24,0xc0,0x00,0x00,0x00,0x00]
0x82,0x19,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 vcc, s[4:7], s0   ; encoding: [0x82,0x1a,0x24,0xc0,0x00,0x00,0x00,0x00]
0x82,0x1a,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0x24,0xc0,0x00,0x00,0x00,0x00]
0x84,0x02,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0x24,0xc0,0x00,0x00,0x00,0x00]
0xb0,0x02,0x24,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], s101 ; encoding: [0x82,0x02,0x24,0xc0,0x65,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], flat_scratch_lo ; encoding: [0x82,0x02,0x24,0xc0,0x66,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], flat_scratch_hi ; encoding: [0x82,0x02,0x24,0xc0,0x67,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], vcc_lo ; encoding: [0x82,0x02,0x24,0xc0,0x6a,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], vcc_hi ; encoding: [0x82,0x02,0x24,0xc0,0x6b,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], m0 ; encoding: [0x82,0x02,0x24,0xc0,0x7c,0x00,0x00,0x00]
0x82,0x02,0x24,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x26,0xc0,0x00,0x00,0x00,0x00]
0x82,0x02,0x26,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], s0 offset:0x12345 ; encoding: [0x82,0x42,0x26,0xc0,0x45,0x23,0x01,0x00]
0x82,0x42,0x26,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_buffer_load_dwordx2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x25,0xc0,0x00,0x00,0x00,0x00]
0x82,0x02,0x25,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], s0 ; encoding: [0x02,0x05,0x28,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[24:27], s[4:7], s0 ; encoding: [0x02,0x06,0x28,0xc0,0x00,0x00,0x00,0x00]
0x02,0x06,0x28,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[96:99], s[4:7], s0 ; encoding: [0x02,0x18,0x28,0xc0,0x00,0x00,0x00,0x00]
0x02,0x18,0x28,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[8:11], s0 ; encoding: [0x04,0x05,0x28,0xc0,0x00,0x00,0x00,0x00]
0x04,0x05,0x28,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[96:99], s0 ; encoding: [0x30,0x05,0x28,0xc0,0x00,0x00,0x00,0x00]
0x30,0x05,0x28,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x28,0xc0,0x65,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], flat_scratch_lo ; encoding: [0x02,0x05,0x28,0xc0,0x66,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], flat_scratch_hi ; encoding: [0x02,0x05,0x28,0xc0,0x67,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], vcc_lo ; encoding: [0x02,0x05,0x28,0xc0,0x6a,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], vcc_hi ; encoding: [0x02,0x05,0x28,0xc0,0x6b,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], m0 ; encoding: [0x02,0x05,0x28,0xc0,0x7c,0x00,0x00,0x00]
0x02,0x05,0x28,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x2a,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x2a,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], s0 offset:0x12345 ; encoding: [0x02,0x45,0x2a,0xc0,0x45,0x23,0x01,0x00]
0x02,0x45,0x2a,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_buffer_load_dwordx4 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x29,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x29,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], s0 ; encoding: [0x02,0x05,0x2c,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[24:31], s[4:7], s0 ; encoding: [0x02,0x06,0x2c,0xc0,0x00,0x00,0x00,0x00]
0x02,0x06,0x2c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[92:99], s[4:7], s0 ; encoding: [0x02,0x17,0x2c,0xc0,0x00,0x00,0x00,0x00]
0x02,0x17,0x2c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[8:11], s0 ; encoding: [0x04,0x05,0x2c,0xc0,0x00,0x00,0x00,0x00]
0x04,0x05,0x2c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[96:99], s0 ; encoding: [0x30,0x05,0x2c,0xc0,0x00,0x00,0x00,0x00]
0x30,0x05,0x2c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], s101 ; encoding: [0x02,0x05,0x2c,0xc0,0x65,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], flat_scratch_lo ; encoding: [0x02,0x05,0x2c,0xc0,0x66,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], flat_scratch_hi ; encoding: [0x02,0x05,0x2c,0xc0,0x67,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], vcc_lo ; encoding: [0x02,0x05,0x2c,0xc0,0x6a,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], vcc_hi ; encoding: [0x02,0x05,0x2c,0xc0,0x6b,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], m0 ; encoding: [0x02,0x05,0x2c,0xc0,0x7c,0x00,0x00,0x00]
0x02,0x05,0x2c,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], 0x0 ; encoding: [0x02,0x05,0x2e,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x2e,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], s0 offset:0x12345 ; encoding: [0x02,0x45,0x2e,0xc0,0x45,0x23,0x01,0x00]
0x02,0x45,0x2e,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_buffer_load_dwordx8 s[20:27], s[4:7], s0 glc ; encoding: [0x02,0x05,0x2d,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x2d,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], s0 ; encoding: [0x02,0x05,0x30,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[24:39], s[4:7], s0 ; encoding: [0x02,0x06,0x30,0xc0,0x00,0x00,0x00,0x00]
0x02,0x06,0x30,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[84:99], s[4:7], s0 ; encoding: [0x02,0x15,0x30,0xc0,0x00,0x00,0x00,0x00]
0x02,0x15,0x30,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[8:11], s0 ; encoding: [0x04,0x05,0x30,0xc0,0x00,0x00,0x00,0x00]
0x04,0x05,0x30,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[96:99], s0 ; encoding: [0x30,0x05,0x30,0xc0,0x00,0x00,0x00,0x00]
0x30,0x05,0x30,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], s101 ; encoding: [0x02,0x05,0x30,0xc0,0x65,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], flat_scratch_lo ; encoding: [0x02,0x05,0x30,0xc0,0x66,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], flat_scratch_hi ; encoding: [0x02,0x05,0x30,0xc0,0x67,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], vcc_lo ; encoding: [0x02,0x05,0x30,0xc0,0x6a,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], vcc_hi ; encoding: [0x02,0x05,0x30,0xc0,0x6b,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], m0 ; encoding: [0x02,0x05,0x30,0xc0,0x7c,0x00,0x00,0x00]
0x02,0x05,0x30,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], 0x0 ; encoding: [0x02,0x05,0x32,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x32,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], s0 offset:0x12345 ; encoding: [0x02,0x45,0x32,0xc0,0x45,0x23,0x01,0x00]
0x02,0x45,0x32,0xc0,0x45,0x23,0x01,0x00

# CHECK: s_buffer_load_dwordx16 s[20:35], s[4:7], s0 glc ; encoding: [0x02,0x05,0x31,0xc0,0x00,0x00,0x00,0x00]
0x02,0x05,0x31,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], s0            ; encoding: [0x42,0x00,0x40,0xc0,0x00,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s101, s[4:5], s0          ; encoding: [0x42,0x19,0x40,0xc0,0x00,0x00,0x00,0x00]
0x42,0x19,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword flat_scratch_lo, s[4:5], s0 ; encoding: [0x82,0x19,0x40,0xc0,0x00,0x00,0x00,0x00]
0x82,0x19,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword flat_scratch_hi, s[4:5], s0 ; encoding: [0xc2,0x19,0x40,0xc0,0x00,0x00,0x00,0x00]
0xc2,0x19,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword vcc_lo, s[4:5], s0        ; encoding: [0x82,0x1a,0x40,0xc0,0x00,0x00,0x00,0x00]
0x82,0x1a,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword vcc_hi, s[4:5], s0        ; encoding: [0xc2,0x1a,0x40,0xc0,0x00,0x00,0x00,0x00]
0xc2,0x1a,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[6:7], s0            ; encoding: [0x43,0x00,0x40,0xc0,0x00,0x00,0x00,0x00]
0x43,0x00,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[100:101], s0        ; encoding: [0x72,0x00,0x40,0xc0,0x00,0x00,0x00,0x00]
0x72,0x00,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, flat_scratch, s0      ; encoding: [0x73,0x00,0x40,0xc0,0x00,0x00,0x00,0x00]
0x73,0x00,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, vcc, s0               ; encoding: [0x75,0x00,0x40,0xc0,0x00,0x00,0x00,0x00]
0x75,0x00,0x40,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], s101          ; encoding: [0x42,0x00,0x40,0xc0,0x65,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x65,0x00,0x00,0x00

# The SGRP variants can alternatively be encoded with imm=0, soffset_en=1
# and the offset register encoded in the soffset field with the offset
# field being disregarded.
# CHECK: s_store_dword s5, s[2:3], s64           ; encoding: [0x41,0x41,0x40,0xc0,0x00,0x00,0x00,0x80]
0x41,0x41,0x40,0xc0,0x65,0x00,0x00,0x80

# CHECK: s_store_dword s1, s[4:5], flat_scratch_lo ; encoding: [0x42,0x00,0x40,0xc0,0x66,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], flat_scratch_hi ; encoding: [0x42,0x00,0x40,0xc0,0x67,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], vcc_lo        ; encoding: [0x42,0x00,0x40,0xc0,0x6a,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], vcc_hi        ; encoding: [0x42,0x00,0x40,0xc0,0x6b,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], m0            ; encoding: [0x42,0x00,0x40,0xc0,0x7c,0x00,0x00,0x00]
0x42,0x00,0x40,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], 0x0           ; encoding: [0x42,0x00,0x42,0xc0,0x00,0x00,0x00,0x00]
0x42,0x00,0x42,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], s7 offset:0x12345 ; encoding: [0x42,0x40,0x42,0xc0,0x45,0x23,0x01,0x0e]
0x42,0x40,0x42,0xc0,0x45,0x23,0x01,0x0e

# SP3 prefers to decode instructions with imm=1 and soffset_en=1 to the
# form with the 'offset:' modifier, even if the offset is 0.
# CHECK: s_store_dword s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x41,0x42,0xc0,0x00,0x00,0x00,0x00]
0x41,0x41,0x42,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dword s1, s[4:5], s0 glc        ; encoding: [0x42,0x00,0x41,0xc0,0x00,0x00,0x00,0x00]
0x42,0x00,0x41,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], s0      ; encoding: [0x82,0x00,0x44,0xc0,0x00,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[4:5], s[4:5], s0      ; encoding: [0x02,0x01,0x44,0xc0,0x00,0x00,0x00,0x00]
0x02,0x01,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[100:101], s[4:5], s0  ; encoding: [0x02,0x19,0x44,0xc0,0x00,0x00,0x00,0x00]
0x02,0x19,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 flat_scratch, s[4:5], s0 ; encoding: [0x82,0x19,0x44,0xc0,0x00,0x00,0x00,0x00]
0x82,0x19,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 vcc, s[4:5], s0         ; encoding: [0x82,0x1a,0x44,0xc0,0x00,0x00,0x00,0x00]
0x82,0x1a,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[6:7], s0      ; encoding: [0x83,0x00,0x44,0xc0,0x00,0x00,0x00,0x00]
0x83,0x00,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[100:101], s0  ; encoding: [0xb2,0x00,0x44,0xc0,0x00,0x00,0x00,0x00]
0xb2,0x00,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], flat_scratch, s0 ; encoding: [0xb3,0x00,0x44,0xc0,0x00,0x00,0x00,0x00]
0xb3,0x00,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], vcc, s0         ; encoding: [0xb5,0x00,0x44,0xc0,0x00,0x00,0x00,0x00]
0xb5,0x00,0x44,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], s101    ; encoding: [0x82,0x00,0x44,0xc0,0x65,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], flat_scratch_lo ; encoding: [0x82,0x00,0x44,0xc0,0x66,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], flat_scratch_hi ; encoding: [0x82,0x00,0x44,0xc0,0x67,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], vcc_lo  ; encoding: [0x82,0x00,0x44,0xc0,0x6a,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], vcc_hi  ; encoding: [0x82,0x00,0x44,0xc0,0x6b,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], m0      ; encoding: [0x82,0x00,0x44,0xc0,0x7c,0x00,0x00,0x00]
0x82,0x00,0x44,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], 0x0     ; encoding: [0x82,0x00,0x46,0xc0,0x00,0x00,0x00,0x00]
0x82,0x00,0x46,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx2 s[2:3], s[4:5], s0 glc  ; encoding: [0x82,0x00,0x45,0xc0,0x00,0x00,0x00,0x00]
0x82,0x00,0x45,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], s0      ; encoding: [0x02,0x01,0x48,0xc0,0x00,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[8:11], s[4:5], s0     ; encoding: [0x02,0x02,0x48,0xc0,0x00,0x00,0x00,0x00]
0x02,0x02,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[96:99], s[4:5], s0    ; encoding: [0x02,0x18,0x48,0xc0,0x00,0x00,0x00,0x00]
0x02,0x18,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[6:7], s0      ; encoding: [0x03,0x01,0x48,0xc0,0x00,0x00,0x00,0x00]
0x03,0x01,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[100:101], s0  ; encoding: [0x32,0x01,0x48,0xc0,0x00,0x00,0x00,0x00]
0x32,0x01,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], flat_scratch, s0 ; encoding: [0x33,0x01,0x48,0xc0,0x00,0x00,0x00,0x00]
0x33,0x01,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], vcc, s0         ; encoding: [0x35,0x01,0x48,0xc0,0x00,0x00,0x00,0x00]
0x35,0x01,0x48,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], s101    ; encoding: [0x02,0x01,0x48,0xc0,0x65,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], flat_scratch_lo ; encoding: [0x02,0x01,0x48,0xc0,0x66,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], flat_scratch_hi ; encoding: [0x02,0x01,0x48,0xc0,0x67,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], vcc_lo  ; encoding: [0x02,0x01,0x48,0xc0,0x6a,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], vcc_hi  ; encoding: [0x02,0x01,0x48,0xc0,0x6b,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], m0      ; encoding: [0x02,0x01,0x48,0xc0,0x7c,0x00,0x00,0x00]
0x02,0x01,0x48,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], 0x0     ; encoding: [0x02,0x01,0x4a,0xc0,0x00,0x00,0x00,0x00]
0x02,0x01,0x4a,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_store_dwordx4 s[4:7], s[4:5], s0 glc  ; encoding: [0x02,0x01,0x49,0xc0,0x00,0x00,0x00,0x00]
0x02,0x01,0x49,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], s0    ; encoding: [0x44,0x00,0x60,0xc0,0x00,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s101, s[8:11], s0  ; encoding: [0x44,0x19,0x60,0xc0,0x00,0x00,0x00,0x00]
0x44,0x19,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword flat_scratch_lo, s[8:11], s0 ; encoding: [0x84,0x19,0x60,0xc0,0x00,0x00,0x00,0x00]
0x84,0x19,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword flat_scratch_hi, s[8:11], s0 ; encoding: [0xc4,0x19,0x60,0xc0,0x00,0x00,0x00,0x00]
0xc4,0x19,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword vcc_lo, s[8:11], s0 ; encoding: [0x84,0x1a,0x60,0xc0,0x00,0x00,0x00,0x00]
0x84,0x1a,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword vcc_hi, s[8:11], s0 ; encoding: [0xc4,0x1a,0x60,0xc0,0x00,0x00,0x00,0x00]
0xc4,0x1a,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[12:15], s0   ; encoding: [0x46,0x00,0x60,0xc0,0x00,0x00,0x00,0x00]
0x46,0x00,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[96:99], s0   ; encoding: [0x70,0x00,0x60,0xc0,0x00,0x00,0x00,0x00]
0x70,0x00,0x60,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], s101  ; encoding: [0x44,0x00,0x60,0xc0,0x65,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], flat_scratch_lo ; encoding: [0x44,0x00,0x60,0xc0,0x66,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], flat_scratch_hi ; encoding: [0x44,0x00,0x60,0xc0,0x67,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], vcc_lo ; encoding: [0x44,0x00,0x60,0xc0,0x6a,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], vcc_hi ; encoding: [0x44,0x00,0x60,0xc0,0x6b,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], m0    ; encoding: [0x44,0x00,0x60,0xc0,0x7c,0x00,0x00,0x00]
0x44,0x00,0x60,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], 0x0   ; encoding: [0x44,0x00,0x62,0xc0,0x00,0x00,0x00,0x00]
0x44,0x00,0x62,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dword s1, s[8:11], s0 glc ; encoding: [0x44,0x00,0x61,0xc0,0x00,0x00,0x00,0x00]
0x44,0x00,0x61,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], s0 ; encoding: [0x84,0x00,0x64,0xc0,0x00,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[4:5], s[8:11], s0 ; encoding: [0x04,0x01,0x64,0xc0,0x00,0x00,0x00,0x00]
0x04,0x01,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[100:101], s[8:11], s0 ; encoding: [0x04,0x19,0x64,0xc0,0x00,0x00,0x00,0x00]
0x04,0x19,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 flat_scratch, s[8:11], s0 ; encoding: [0x84,0x19,0x64,0xc0,0x00,0x00,0x00,0x00]
0x84,0x19,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 vcc, s[8:11], s0 ; encoding: [0x84,0x1a,0x64,0xc0,0x00,0x00,0x00,0x00]
0x84,0x1a,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[12:15], s0 ; encoding: [0x86,0x00,0x64,0xc0,0x00,0x00,0x00,0x00]
0x86,0x00,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[96:99], s0 ; encoding: [0xb0,0x00,0x64,0xc0,0x00,0x00,0x00,0x00]
0xb0,0x00,0x64,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], s101 ; encoding: [0x84,0x00,0x64,0xc0,0x65,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], flat_scratch_lo ; encoding: [0x84,0x00,0x64,0xc0,0x66,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], flat_scratch_hi ; encoding: [0x84,0x00,0x64,0xc0,0x67,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], vcc_lo ; encoding: [0x84,0x00,0x64,0xc0,0x6a,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], vcc_hi ; encoding: [0x84,0x00,0x64,0xc0,0x6b,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], m0 ; encoding: [0x84,0x00,0x64,0xc0,0x7c,0x00,0x00,0x00]
0x84,0x00,0x64,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], 0x0 ; encoding: [0x84,0x00,0x66,0xc0,0x00,0x00,0x00,0x00]
0x84,0x00,0x66,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx2 s[2:3], s[8:11], s0 glc ; encoding: [0x84,0x00,0x65,0xc0,0x00,0x00,0x00,0x00]
0x84,0x00,0x65,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], s0 ; encoding: [0x04,0x01,0x68,0xc0,0x00,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[8:11], s[8:11], s0 ; encoding: [0x04,0x02,0x68,0xc0,0x00,0x00,0x00,0x00]
0x04,0x02,0x68,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[96:99], s[8:11], s0 ; encoding: [0x04,0x18,0x68,0xc0,0x00,0x00,0x00,0x00]
0x04,0x18,0x68,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[12:15], s0 ; encoding: [0x06,0x01,0x68,0xc0,0x00,0x00,0x00,0x00]
0x06,0x01,0x68,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[96:99], s0 ; encoding: [0x30,0x01,0x68,0xc0,0x00,0x00,0x00,0x00]
0x30,0x01,0x68,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], s101 ; encoding: [0x04,0x01,0x68,0xc0,0x65,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x65,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], flat_scratch_lo ; encoding: [0x04,0x01,0x68,0xc0,0x66,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x66,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], flat_scratch_hi ; encoding: [0x04,0x01,0x68,0xc0,0x67,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x67,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], vcc_lo ; encoding: [0x04,0x01,0x68,0xc0,0x6a,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x6a,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], vcc_hi ; encoding: [0x04,0x01,0x68,0xc0,0x6b,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x6b,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], m0 ; encoding: [0x04,0x01,0x68,0xc0,0x7c,0x00,0x00,0x00]
0x04,0x01,0x68,0xc0,0x7c,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], 0x0 ; encoding: [0x04,0x01,0x6a,0xc0,0x00,0x00,0x00,0x00]
0x04,0x01,0x6a,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_buffer_store_dwordx4 s[4:7], s[8:11], s0 glc ; encoding: [0x04,0x01,0x69,0xc0,0x00,0x00,0x00,0x00]
0x04,0x01,0x69,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_dcache_inv                            ; encoding: [0x00,0x00,0x80,0xc0,0x00,0x00,0x00,0x00]
0x00,0x00,0x80,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_dcache_wb                             ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_dcache_inv_vol                        ; encoding: [0x00,0x00,0x88,0xc0,0x00,0x00,0x00,0x00]
0x00,0x00,0x88,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_dcache_wb_vol                         ; encoding: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00]
0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memtime s[10:11]                      ; encoding: [0x80,0x02,0x90,0xc0,0x00,0x00,0x00,0x00]
0x80,0x02,0x90,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memtime s[12:13]                      ; encoding: [0x00,0x03,0x90,0xc0,0x00,0x00,0x00,0x00]
0x00,0x03,0x90,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memtime s[100:101]                    ; encoding: [0x00,0x19,0x90,0xc0,0x00,0x00,0x00,0x00]
0x00,0x19,0x90,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memtime flat_scratch                  ; encoding: [0x80,0x19,0x90,0xc0,0x00,0x00,0x00,0x00]
0x80,0x19,0x90,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memtime vcc                           ; encoding: [0x80,0x1a,0x90,0xc0,0x00,0x00,0x00,0x00]
0x80,0x1a,0x90,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memrealtime s[10:11]                  ; encoding: [0x80,0x02,0x94,0xc0,0x00,0x00,0x00,0x00]
0x80,0x02,0x94,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memrealtime s[12:13]                  ; encoding: [0x00,0x03,0x94,0xc0,0x00,0x00,0x00,0x00]
0x00,0x03,0x94,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memrealtime s[100:101]                ; encoding: [0x00,0x19,0x94,0xc0,0x00,0x00,0x00,0x00]
0x00,0x19,0x94,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memrealtime flat_scratch              ; encoding: [0x80,0x19,0x94,0xc0,0x00,0x00,0x00,0x00]
0x80,0x19,0x94,0xc0,0x00,0x00,0x00,0x00

# CHECK: s_memrealtime vcc                       ; encoding: [0x80,0x1a,0x94,0xc0,0x00,0x00,0x00,0x00]
0x80,0x1a,0x94,0xc0,0x00,0x00,0x00,0x00
